/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package collections.dao;

import collections.factory.ListasFactory;
import collections.mapeamento.TaUsuarioRequisicao;
import collections.mapeamento.TbDocumentoIdentificacao;
import collections.mapeamento.TbEndereco;
import collections.mapeamento.TbNomeAnterior;
import collections.mapeamento.TbPassaporteDiplomatico;
import collections.mapeamento.TbPessoa;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

/**
 *
 * @author ra20804668
 */
public class JulgarReqDAO extends ListasFactory {

    private static List<TaUsuarioRequisicao> listaTemp;
    private static TaUsuarioRequisicao ta;
    private static List<TbDocumentoIdentificacao> tbDoc;
    private static TbEndereco endereco;
    private static TbNomeAnterior nomeAnt;
    private static TbPassaporteDiplomatico docAnt;
    private static List<TaUsuarioRequisicao> reqFiltrada;
    private List<TbPessoa> depedentes;

    public List<TaUsuarioRequisicao> requisicoesPorData(Date dataIni, Date dataFim) {
        reqFiltrada = new ArrayList<TaUsuarioRequisicao>();
        for (Iterator<TaUsuarioRequisicao> it = listaUsuarioRequisicao.iterator(); it.hasNext();) {
            TaUsuarioRequisicao taUsuarioRequisicao = it.next();
            if (taUsuarioRequisicao.getTbRequisicao().getDtaEntradaRequisicao().after(dataIni) && taUsuarioRequisicao.getTbRequisicao().getDtaEntradaRequisicao().before(dataFim)) {
                reqFiltrada.add(taUsuarioRequisicao);
            }
        }
        return reqFiltrada;
    }

    public List<TaUsuarioRequisicao> buscaRequisicao() {
        listaTemp = new ArrayList<TaUsuarioRequisicao>();

        for (Iterator<TaUsuarioRequisicao> it = listaUsuarioRequisicao.iterator(); it.hasNext();) {
            TaUsuarioRequisicao taUsuarioRequisicao = it.next();
            if (taUsuarioRequisicao.getStsRequisicao().contains("Aprovado DDV")) {
                getListaTemp().add(taUsuarioRequisicao);
            }
        }
        return getListaTemp();
    }

    public List<TbPessoa> buscaDependentes(int codPessoa) {
        depedentes = new ArrayList<TbPessoa>();
        for (Iterator<TbPessoa> it = listaPessoa.iterator(); it.hasNext();) {
            TbPessoa tbPessoa = it.next();
            if (tbPessoa.getCodPessoa() == codPessoa) {
                getDepedentes().add(tbPessoa);
            }
        }
        return getDepedentes();

    }

    public void dadosRequisicaoMre(String nome) {
        ta = new TaUsuarioRequisicao();
        for (Iterator<TaUsuarioRequisicao> it = listaUsuarioRequisicao.iterator(); it.hasNext();) {
            TaUsuarioRequisicao taUsuarioRequisicao = it.next();
            if (taUsuarioRequisicao.getTbRequisicao().getTbPessoa().getNmePessoa().contains(nome)) {
                ta = taUsuarioRequisicao;
            }
        }
    }

    public void dadosEndereco(String nome) {
        endereco = new TbEndereco();
        for (Iterator<TbEndereco> it = listaEndereco.iterator(); it.hasNext();) {
            TbEndereco tbEndereco = it.next();
            if (tbEndereco.getTbPessoa().getNmePessoa().contains(nome)) {
                endereco = tbEndereco;
            }
        }
    }

    public List<TbDocumentoIdentificacao> dadosDocumentosIdentificacao(String nome) {
        tbDoc = new ArrayList<TbDocumentoIdentificacao>();
        for (Iterator<TbDocumentoIdentificacao> it = listaDocumentoIdentificacao.iterator(); it.hasNext();) {
            TbDocumentoIdentificacao tbDocumentoIdentificacao = it.next();
            if (tbDocumentoIdentificacao.getTbPessoa().getNmePessoa().contains(nome)) {
                getTbDoc().add(tbDocumentoIdentificacao);
            }
        }
        return getTbDoc();
    }

    public void buscaNomeAnt(String nome) {
        nomeAnt = new TbNomeAnterior();
        for (Iterator<TbNomeAnterior> it = listaNomeAnterior.iterator(); it.hasNext();) {
            TbNomeAnterior tbNomeAnterior = it.next();
            if (tbNomeAnterior.getTbPessoa().getNmePessoa().contains(nome)) {
                nomeAnt = tbNomeAnterior;
            }
        }
    }

    public void buscaDocAnterior(String nome) {
        docAnt = new TbPassaporteDiplomatico();
        for (Iterator<TbPassaporteDiplomatico> it = listaPassaporteDiplomatico.iterator(); it.hasNext();) {
            TbPassaporteDiplomatico tbPassaporteDiplomatico = it.next();
            if (tbPassaporteDiplomatico.getTbPessoa().getNmePessoa().contains(nome)) {
                docAnt = tbPassaporteDiplomatico;
            }
        }
    }

    public List<TaUsuarioRequisicao> retornaListaJulgar() {
        List<TaUsuarioRequisicao> listaLocal = new ArrayList<TaUsuarioRequisicao>();
        for (Iterator<TaUsuarioRequisicao> it = listaUsuarioRequisicao.iterator(); it.hasNext();) {
            TaUsuarioRequisicao us = it.next();
            if (us.getStsRequisicao().equals("Aprovado DDV")) {
                listaLocal.add(us);
            }
        }
        return listaLocal;
    }

    /**
     * @return the listaTemp
     */
    public static List<TaUsuarioRequisicao> getListaTemp() {
        return listaTemp;
    }

    /**
     * @param aListaTemp the listaTemp to set
     */
    public static void setListaTemp(List<TaUsuarioRequisicao> aListaTemp) {
        listaTemp = aListaTemp;
    }

    public static TaUsuarioRequisicao getTa() {
        return ta;
    }

    public static void setTa(TaUsuarioRequisicao ta) {
        JulgarReqDAO.ta = ta;
    }

    public static List<TbDocumentoIdentificacao> getTbDoc() {
        return tbDoc;
    }

    public static void setTbDoc(List<TbDocumentoIdentificacao> tbDoc) {
        JulgarReqDAO.tbDoc = tbDoc;
    }

    public static TbEndereco getEndereco() {
        return endereco;
    }

    public static void setEndereco(TbEndereco endereco) {
        JulgarReqDAO.endereco = endereco;
    }

    public static TbNomeAnterior getNomeAnt() {
        return nomeAnt;
    }

    public static void setNomeAnt(TbNomeAnterior nomeAnt) {
        JulgarReqDAO.nomeAnt = nomeAnt;
    }

    public static TbPassaporteDiplomatico getDocAnt() {
        return docAnt;
    }

    public static void setDocAnt(TbPassaporteDiplomatico docAnt) {
        JulgarReqDAO.docAnt = docAnt;
    }

    public List<TbPessoa> getDepedentes() {
        return depedentes;
    }

    public void setDepedentes(List<TbPessoa> depedentes) {
        this.depedentes = depedentes;
    }

}
